#pragma once

#include "Misc/EngineEditorMacros.h"
#include "Object/Object.h"
#include "EditorPropertyViewModel.m.h"

class REditorObjectPropertyAbilityViewModel;
class REditorPropertyModel;

RCLASS()
class REditorPropertyViewModel : public RObject
{
    ROBJECT

public:
    virtual void BindModel(
        TSharedObjectPtr<REditorPropertyModel> InModel
        ,TSharedObjectPtr<REditorObjectPropertyAbilityViewModel> InAbilityViewModel
        );

    const float LineHeight = 20.0f;

    // Get the  the spliter left distance to property widget
    float GetSpliterLeftOffset() const;
    const float SpliterWidth = 1.0f;

    TSharedObjectPtr<REditorPropertyModel> GetModel() const;
protected:
    TWeakObjectPtr<REditorObjectPropertyAbilityViewModel> AbilityViewModel;
    TWeakObjectPtr<REditorPropertyModel> BaseModel;
};